import { defineConfig } from 'vite'
import { resolve } from 'path'
import terser from '@rollup/plugin-terser'
import path from 'path' // @types/node

/**
 * vite build 自定义配置
 * https://vitejs.cn/vite5-cn/guide/build.html
 */
export default defineConfig({
  build: {
    copyPublicDir: false,// 不复制静态资源
    emptyOutDir: true, // 每次编译时清空输出目录
    cssCodeSplit: false, // CSS不单独分离文件
    outDir: path.resolve(__dirname, "lib"),
    lib: {
      entry: resolve(process.cwd(), './src/index.ts'), // UI库入口
      name: 'EovaTools', // 库名(全局名称)
      formats: ['es', 'umd'], // 输出类型
      fileName: (format) => `eova-tools.${format}.js`, // 打包文件名
    },
    terserOptions: {
      // 编译配置(移除和屏蔽无用代码)
      compress: {
        drop_console: true,
        drop_debugger: true,
        // pure_funcs: ['console.log']
      },
      output: {
        comments: true, // 保持注释
      },
    },
    rollupOptions: {
      plugins: [terser()], // 压缩JS
      output: {
        exports: 'named', // 模块中的所有导出都将作为命名导出
        globals: {
          axios: 'axios', // 指定 axios 的全局变量名为 axios
        },
      },
      external: ['axios'],
    },
  },
  resolve: {
    alias: {
      '@eova/eova-tools': path.resolve(__dirname, 'src') // __dirname 是当前文件的目录名
    }
  }
})
